Digital images are often created as bitmaps formed of one or more visual elements within the image. Digital images may result from either real world capture or computer generation of an image. A scanner or a digital camera may be used to capture digital images. Computer generation may be performed with the use of a paint program, screen capture, the conversion of a graphic into a bitmap image, and the like. Digital images may also be compressed using any appropriate compression algorithm.
Digital images are often created with a native or default resolution. Often with such images it is desirable to scale the size of the image to a second resolution to suit the users requirements or desires. For example, the image may be scaled to enlarge the image to occupy all or substantially all of a computer monitor, or scaled to reduced the image to allow for multiple images to be displayed on a monitor. In addition, it is often desirable to further re-scale images from a second resolution to a third or subsequent resolution. However, in scaling the image, certain elements of the image may lose clarity, definition or sharpness. For example, in creating two-dimensional graphics having relatively small or detailed elements, it is sometimes observed that the smaller elements lose clarity when the image is resized.
Instead of scaling an image, one could choose to prepare multiple versions of the image at all possible resolutions or sizes. This technique, however, is not practicable as it requires that multiple versions of the entire image be prepared and because it requires a large amount of computer storage to store multiple versions of the same image. Additionally, some existing scaling methods and algorithms only allow the user to reduce image size (and resolution), rather than enlarge an image.
What is needed therefore is a system and method for resizing a digital image that maintains the clarity and sharpness of at least some of the elements of the image while maintaining a manageable file size of the graphics, and will allow the user to either enlarge or reduce the image size.